package cn.zqy.demo2.day07.LambdaTest;

import java.util.Arrays;

/*
*  Lambda表达式有参数有返回值的练习
    需求:
        使用数组存储多个Person对象
        对数组中的Person对象使用Arrays的sort方法通过年龄进行升序排序
*/
public class Demo02ArraysPerson {
    public static void main(String[] args) {
        //使用数组存储多个Person对象
        Person[] arr = new Person[]{
          new Person("杨幂",10),
          new Person("李小璐",30),
          new Person("周润发",26),
          new Person("宝强",5)
        };
        //对数组中的Person对象使用Arrays的sort方法通过年龄进行升序(前边-后边)排序
        /*Arrays.sort(arr, new Comparator<Person>() {
            @Override
            public int compare(Person o1, Person o2) {
                return o1.getAge() - o2.getAge();
            }
        });*/

        //使用Lambda表达式,简化匿名内部类
        /*Arrays.sort(arr, (Person o1, Person o2) -> {
            return o2.getAge() - o1.getAge();
        });*/

        //
        Arrays.sort(arr, (o1, o2) ->  o1.getAge() - o2.getAge());

        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }
    }
}
